package com.thx.common.plug.excel;

/**
 * 常规验证类,如不能满足需求,子类可继承扩展
 * 
 * @author 陈上远
 * 
 */
public class CheckImport {

	public String error;// 错误信息

	/**
	 * 非空验证
	 * 
	 * @param cellValue
	 * @return
	 */
	public String checkNull(String cellValue) {
		if (cellValue == null || "".equals(cellValue)) {
			error = "不能为空!";
		}
		return error;
	}

	/**
	 * 固定长度验证
	 * 
	 * @param cellValue
	 * @param length
	 * @return
	 */
	public String checkLength(String cellValue, int length) {
		if (cellValue == null || cellValue.length() != length) {
			error = "长度应为" + length + "!";
		}
		return error;
	}

	/**
	 * 手机号验证,鉴于号段变动,只验证以1开头的11位数字
	 * 
	 * @param cellValue
	 * @return
	 */
	public String checkPhone(String cellValue) {
		String regex = "^1\\d{10}$";
		if (cellValue != null && !cellValue.matches(regex)) {
			error = "手机号不合法!";
		}
		return error;
	}

	/**
	 * 固定电话验证,11位
	 * 
	 * @param cellValue
	 * @return
	 */
	public String checkTel(String cellValue) {
		String regex = "\\d{3}-\\d{8}|\\d{4}-\\d{7}";
		if (cellValue != null && !cellValue.matches(regex)) {
			error = "固定电话格式不合法!";
		}
		return error;
	}

	/**
	 * 邮箱验证,鉴于具体验证规则难以满足所有情况,此处只验证是否包含@
	 * 
	 * @param cellValue
	 * @return
	 */
	public String checkEmail(String cellValue) {
		if (cellValue != null && cellValue.indexOf("@") == -1) {
			error = "邮箱格式不合法!";
		}
		return error;
	}

	/**
	 * 身份证验证,15位或18位,可包含Xx
	 * 
	 * @param cellValue
	 * @return
	 */
	public String checkIdCard(String cellValue) {
		String regex = "^((\\d{15})|(\\d{18})|(\\d{17}[xX]))$";
		if (cellValue != null && !cellValue.matches(regex)) {
			error = "身份证格式不合法!";
		}
		return error;
	}

	/**
	 * 邮编验证,6位
	 * 
	 * @param cellValue
	 * @return
	 */
	public String checkZipCode(String cellValue) {
		String regex = "[0-9]\\d{5}(?!\\d)";
		if (cellValue != null && !cellValue.matches(regex)) {
			error = "邮编格式不合法!";
		}
		return error;
	}

	/**
	 * 纯数字验证，只能是数字
	 * 
	 * @param cellValue
	 * @return
	 */
	public String checkDigits(String cellValue) {
		String regex = "^\\d+$";
		if (cellValue != null && !cellValue.matches(regex)) {
			error = "只能是数字!";
		}
		return error;
	}

	/**
	 * 中文验证，只能是汉字
	 * 
	 * @param cellValue
	 * @return
	 */
	public String checkChinese(String cellValue) {
		String regex = "[\u4e00-\u9fa5]+";
		if (cellValue != null && !cellValue.matches(regex)) {
			error = "只能是汉字!";
		}
		return error;
	}
}
